public class Test01 {
    public ListNode ReverseList (ListNode head) {
        // write code here
        if (head == null) return null;
        ListNode dummy = new ListNode(0); // 使用哑节点简化代码
        ListNode cur = head;
        while (cur != null) {
            ListNode curNext = cur.next; // 保存下一个节点
            cur.next = dummy.next; // 反转当前节点的指针
            dummy.next = cur; // 将当前节点移动到哑节点后面
            cur = curNext; // 移动到下一个节点
        }
        return dummy.next; // 返回新链表的头节点
    }
}
